/*
                       *********************
*************************** C SOURCE FILE ******************************
**                     *********************                          **


#define _MAIN_C_SRC

/****************************************************************************/
/**                                                                        **/
/**                                     MODULES USED                       **/
/**                                                                        **/
/****************************************************************************/

#include "main.h"

/****************************************************************************/
/**                                                                        **/
/**                             DEFINITIONS AND MACROS                     **/
/**                                                                        **/
/****************************************************************************/


/****************************************************************************/
/**                                                                        **/
/**                           TYPEDEFS AND STRUCTURES                      **/
/**                                                                        **/
/****************************************************************************/


/****************************************************************************/
/**                                                                        **/
/**                      PROTOTYPES OF LOCAL FUNCTIONS                     **/
/**                                                                        **/
/****************************************************************************/

int arraystrlen(char *str[],int cnt);

/****************************************************************************/
/**                                                                        **/
/**                                 EXPORTED VARIABLES                     **/
/**                                                                        **/
/****************************************************************************/



/****************************************************************************/
/**                                                                        **/
/**                                 GLOBAL VARIABLES                       **/
/**                                                                        **/
/****************************************************************************/



/****************************************************************************/
/**                                                                        **/
/**                                  EXPORTED FUNCTIONS                    **/
/**                                                                        **/
/****************************************************************************/



/****************************************************************************/
/**                                                                        **/
/**                                    LOCAL FUNCTIONS                     **/
/**                                                                        **/
/****************************************************************************/

int main(int ac,char *av[])
{
	int i,j,l,len,number;
	char *buf;


/*Error check*/
	if(ac<3)
	{
		printf("Error, argumment must more than two\n");
		return 0;
	}

	for(i=0;i<ac;i++)
	{
		if(i==(ac-1))
		{
			number = av[i][0];
			if((number<'0')||(number>'2'))
			{
				printf("Error, the last argumment must be '0','1' or '2'\n");
				return 0;
			}
		}
	}


/* Reserve the memmory */
	len = arraystrlen(++av,ac-2);
	buf = (char*)malloc(sizeof(len));

/* replace '\0' with ' ' */
	for(i=0;i<ac-3;i++)
	{
		l = strlenge(av[i]);
		for(j=0;j<=l;j++)
		{
			if(av[i][j]=='\0')
			{
				av[i][j] = ' ';
			}
		}
	}

/* load string to buffer */
	buf = av[0];


/* Chaeck mode */
	if(number == '0')
	{
		printf("%s\n",buf);
	}
	else if(number == '1')
	{
		reverse(buf);
		printf("%s\n",buf);

	}
	else if(number == '2')
	{
		printf("%s\n",buf);
		reverse(buf);
		printf("%s\n",buf);
	}


	free(buf);
	return 0;
}

/* Find lenge of array of string */
int arraystrlen(char *str[],int cnt)
{
	int i,j;
	int count=0;
	for(i=0;i<cnt;i++)
	{
		for(j=0;str[i][j]!='\0';j++);
		j++;
		count+=j;
	}
	return(count);
}


/****************************************************************************/
/**                                                                        **/
/**                                  EOF                                   **/
/**                                                                        **/
/****************************************************************************/
